#!/bin/bash
# Zabbix告警分析脚本 v2.0 快速部署脚本

echo "🚀 Zabbix告警分析脚本 v2.0 部署工具"
echo "======================================"

# 检查Python版本
echo "📋 检查Python环境..."
python_version=$(python3 --version 2>/dev/null | cut -d' ' -f2)
if [ -z "$python_version" ]; then
    echo "❌ 错误: 未找到Python3，请先安装Python 3.7+"
    exit 1
fi

# 检查Python版本是否符合要求 (3.7+)
python_major=$(echo $python_version | cut -d'.' -f1)
python_minor=$(echo $python_version | cut -d'.' -f2)
if [ "$python_major" -lt 3 ] || ([ "$python_major" -eq 3 ] && [ "$python_minor" -lt 7 ]); then
    echo "❌ 错误: 需要 Python 3.7 或更高版本"
    echo "当前版本: Python $python_version"
    echo "请升级Python版本后重试"
    exit 1
fi
echo "✅ Python版本: $python_version (符合要求)"

# 检查pip
if ! command -v pip3 &> /dev/null; then
    echo "❌ 错误: 未找到pip3，请先安装pip"
    exit 1
fi
echo "✅ pip3已安装"

# 安装依赖包
echo ""
echo "📦 安装依赖包..."
if pip3 install -r requirements.txt; then
    echo "✅ 依赖包安装成功"
else
    echo "❌ 依赖包安装失败"
    exit 1
fi

# 检查配置文件
echo ""
echo "⚙️ 检查配置文件..."
if [ ! -f ".env" ]; then
    if [ -f ".env.template" ]; then
        echo "📋 未找到 .env 文件，正在复制模板..."
        cp .env.template .env
        echo "✅ 已复制 .env.template 为 .env"
        echo "⚠️ 请编辑 .env 文件，填入真实的数据库连接信息和 API 密钥"
        echo "⚠️ 然后重新运行部署脚本"
        exit 1
    else
        echo "❌ 未找到配置文件 .env 和 .env.template"
        echo "请创建配置文件，可以参考 README.md 中的配置说明"
        exit 1
    fi
else
    echo "✅ 找到配置文件 .env"
    
    # 验证必要配置项
    if python3 -c "from config import Config; exit(0 if Config.validate() else 1)" 2>/dev/null; then
        echo "✅ 配置验证通过"
fi

# 测试数据库连接
echo ""
echo "🔌 测试数据库连接..."
if python3 main.py --test-db; then
    echo "✅ 数据库连接测试成功"
else
    echo "❌ 数据库连接测试失败"
    echo "请检查:"
    echo "  1. 数据库服务是否运行"
    echo "  2. 数据库连接配置是否正确"
    echo "  3. 数据库驱动是否安装 (psycopg2-binary/pymysql)"
    exit 1
fi

# 测试dry-run模式
echo ""
echo "🧪 测试分析功能..."
if python3 main.py --dry-run > /dev/null 2>&1; then
    echo "✅ 告警分析功能测试成功"
else
    echo "⚠️ 告警分析功能测试有问题，请查看详细日志"
fi

# 设置可执行权限
echo ""
echo "🔐 设置文件权限..."
chmod +x main.py
chmod +x setup.sh
echo "✅ 文件权限设置完成"

# 部署完成
echo ""
echo "🎉 部署完成！"
echo ""
echo "📋 可用命令:"
echo "  python3 main.py              # 执行完整分析和推送"
echo "  python3 main.py --dry-run    # 仅分析，不发送通知"
echo "  python3 main.py --test-db    # 测试数据库连接"
echo "  python3 main.py --verbose    # 显示详细日志"
echo ""
echo "📅 设置定时任务示例:"
echo "  # 每小时执行一次"
echo "  0 * * * * cd $(pwd) && python3 main.py"
echo ""
echo "📖 详细文档: README.md"
